草庐IT

c++ - 纯虚拟 friend 类

全部标签

c - 如何为 CreateProcess() 启动的进程设置语言环境

当使用CreateProcessW()启动进程时,是否可以使用与配置为系统范围默认代码页的不同的MBCP语言环境/代码页创建进程?在目标进程中,这应该与调用_setmbcp()具有相同的效果。目标进程未启用unicode,并使用普通的main(intargc,char**argv)入口点。我希望能够选择代码页,将传递给CreateProcessW()的unicode参数转换为不同于系统的非unicode程序的默认代码页。 最佳答案 我刚刚遇到一个Microsoft实用程序:AppLocale,这似乎正好满足了这种需求......

c++ - Wine 链接器错误 : trying to create . lnk

我正在尝试以编程方式创建.lnk文件。我更愿意使用C,但C++很好(而且是所有MSDN的内容)。相关代码示例为:#include#include#includeHRESULTCreateLink(LPCSTRlpszPathObj,LPCSTRlpszPathLink,LPCSTRlpszDesc){HRESULThres;IShellLink*psl;/*GetapointertotheIShellLinkinterface.*/hres=CoCreateInstance(CLSID_ShellLink,NULL,CLSCTX_INPROC_SERVER,IID_IShellLink

在 Windows 中打印到控制台时需要回车吗?

好像只放一个换行就够了,但我知道应该是回车+换行。如果你不放回车而只使用换行,会发生什么可怕的事情吗?这是在ANSIC中,不会被重定向到文件或其他任何东西。只是一个普通的控制台应用程序。 最佳答案 Windows控制台遵循与文件或实际物理终端相同的行结束约定。它需要同时看到CR和LF才能正确移动到下一行。也就是说,在ANSIC程序和控制台之间有很多软件基础设施。特别是,任何标准C库I/O函数都会尝试做正确的事情,前提是您允许它这样做。这就是为什么为mode参数定义了fopen()的t和b修饰符。使用t(大多数流的默认设置,特别是st

c++ - 在 Windows 中禁用文件夹虚拟化

我目前有一个构建在xp和windowsvista/7上的c++应用程序虚拟化了一些我不希望它执行的路径。一些sitessays将其添加到list文件:.net应用程序是怎样的。我如何在VisualStudio2005的C++下执行此操作?.编辑:我需要下载vistasdk并在visualstudio中包含它的bin路径,然后才能工作。 最佳答案 一模一样。使用给定的上下文创建一个文件并将该文件添加到您的项目设置中:list工具>输入和输出>其他list文件完成! 关于c++-在Windo

c++ - 我的 C 程序为钩子(Hook)提供了一个回调函数。我怎样才能让它活着,不笨拙?

目前,我正在生成一个带有操作系统库函数(Windows.h)的消息框,它神奇地让我的程序保持事件状态并响应对回调函数的调用。有什么替代方法可以让程序默默地永远运行?捕获“Ctrl-c”或SIGINT并随后调用RemoveHook()以干净退出会很好,但不是必需的。HOOKmy_hook;CALLBACKmy_callback_fn(){...}intmain(){my_hook=SetHook(my_callback_fn);MessageBox("PressOKtostop.");//Thisisbad.RemoveHook(my_hook);return0;}

c++ - Windows 上的中介层

是否可以替代系统功能,就像在Linux和Solaris上使用LD_PRELOAD一样例如通过设置环境变量:LD_PRELOAD=/path/to/mymalloc.so我会使用我的替代malloc函数,而不是在已经安装在系统库中的C运行时中。系统dll中的所有其他功能将正常运行。 最佳答案 MicrosoftResearch有一个名为Detours的库这允许您拦截Win32API调用。DetoursisalibraryforinstrumentingarbitraryWin32functionsonx86,x64,andIA64ma

windows - 是否有适用于 Windows 的免费或开源虚拟内存驱动器?

我正在为主机程序开发一个插件,我需要用磁盘中的临时文件与它进行通信;如果临时文件存储在内存中的虚拟驱动器中,则性能可能会显着提高。在Delphi中实现内存虚拟驱动器的提示也很受欢迎。 最佳答案 检查this第一,它基于来自MSFT的示例RAMDisk驱动程序,并且似乎可以通过一些注册表调整进行配置。 关于windows-是否有适用于Windows的免费或开源虚拟内存驱动器?,我们在StackOverflow上找到一个类似的问题: https://stackov

c++ - 从(打开的)Solaris 交叉编译到 Windows?

有什么方法可以从Solaris或OpenSolaris设置交叉编译Windows(XP、Vista、Win7)的C/C++代码,最好是64位和32位(对于Vista和Win7)?我的代码库已经是跨平台的,我想从Solaris或Linux交叉编译它(生成WindowsDLL和EXE)作为自动化过程的一部分。我想使用GCC套件,如果可能的话,我宁愿不需要使用CygwinDLL。如果可能,我在Solaris环境中需要哪些工具?我将如何编译/链接整个项目?如果这在Solaris中不可能,考虑到我想要我提到的所有Windows版本的32位和64位二进制文​​件,我应该如何从Linux开始?在此先

c - 我的程序阻止 Windows 关闭!

我的wxwidgets程序不允许在用户单击关机时关闭计算机。我在正常退出程序时遇到问题,所以我一直在直接调用exit()而不是像wxwidgets所说的那样删除顶部窗口。退出解决方法一直有效,但似乎wxwidgets在收到关闭窗口信号(?)时无法退出。我能否以某种方式捕获它并仅调用exit以便程序不会阻止窗口关闭? 最佳答案 Windows向所有应用程序发送WM_SHUTDOWN消息。此事件映射到您的wxWidgets应用程序中的EVT_END_SESSION。确保正确处理此事件。参见wxCloseEventClassReferen

c - 创建/删除一系列相同大小的文件后 NTFS 磁盘空间不足

我在处理一个大型项目时遇到了一个非常奇怪的问题。我在一个分区上写了一堆相同大小的文件(尝试了RAM磁盘和通过diskmgmt.msc创建的虚拟磁盘)。当没有足够的可用空间来容纳另一个文件时(如GetDiskFreeSpaceExW所报告),我删除了一个(只有一个)以前创建的文件并写入新文件。然后,我删除另一个旧文件并写入一个新文件,无限循环(因此,您可以将分区视为大小相同的文件的环形缓冲区)。在一系列的写入-删除(从几百到几千)之后,我在写入新文件时遇到了nofreespace错误(在此之前,GetDiskFreeSpaceExW报告足够的空间)。我请我的几位同事尝试在他们的硬件上重现